#JavaScript GoogleAppEngine Bootstrap
Explore tagged Tumblr posts
frankslin · 8 years ago
Text
重写了 strpwdgen.appspot.com
大约 5 年前,徒手写了一个 HTML 的“随机强密码生成器”,并且 host 在了 Google App Engine 上。当时 manifest 中声明的是 Python 2.5 的 runtime,虽然这个 single-page app 中其实并没有任何需要动���生成的内容。前不久 Google 发来通知告知所有 Python 2.5 的 app 即将删除,需要尽快迁至 Python 2.7。于是决定利用这个机会重新折腾一下。
这个 webapp 基本原理就是通过 JavaScript 的 Math.random() 生成随机数多次,并映射到一个指定长度的字符串。此 webapp 有生成指定长度随机密码和 UUID 两种功能,并可复制到剪贴板方便使用。由于 JavaScript 的 Math.random() 是不能设置 seed 的,这个 webapp 只能当个玩具用用。如需生成“真正”的随机数,必须从浏览器外获取熵源(例如,通过让用户在一段时间内随意晃动鼠标并收集坐标等)。
本次重写主要进行了以下几个尝试:
Mobile 设备上显示字体太小,使用不方便。这次用 Bootstrap 框架写表单,只需加一行 responsive 的声明就自动搞定了。
尝试在 Bootstrap 框架内实现了一个类似 Windows 中的 NumericUpDown 控件。
尝试了一下 JavaScript 的一些新特性。例如,当年的浏览器还不支持通过 JavaScript 操作剪贴板,现在主流浏览器都可以直接使用 document.execCommand('copy') 直接把选定的内容复制到剪贴板了。
尝试了一下使用 uglify 和 minimizer 工具,貌似 uglify 稳定版本尚不支持 ES6 的语法,需要使用测试版本中的功能。
待解决的问题:
iPhone 的 Safari 浏览器上剪贴板功能不太正常。
0 notes